package com.sh.xxj.rebot.app;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import java.util.Properties;

import com.sh.xxj.rebot.model.CourseModel;
import com.sh.xxj.rebot.model.TypeModel;
import com.sh.xxj.rebot.service.ConfigService;
import com.sh.xxj.rebot.service.CourseService;

/**
 * 生成游戏包
 * 
 * @author Administrator
 * 
 */
public class GenerateGamePackage {

	/**
	 * @param args
	 * @throws Exception
	 * @throws FileNotFoundException
	 */
	public static void main(String[] args) throws FileNotFoundException,
			Exception {
		// 代理
		System.getProperties().put("proxySet", "true");
		System.getProperties().put("proxyHost", "127.0.0.1");
		System.getProperties().put("proxyPort", "808");
		System.out.println("进入代理");
		
		
		//通用配置
		Properties propCommon = new Properties();
		propCommon.load(new FileInputStream("res/config/common.properties"));
		ConfigService.COMMON_MENU_XML_PATH=propCommon.getProperty("COMMON_MENU_XML_PATH");
		
		//语种的配置
		Properties propLanguage = new Properties();
		//载入配置文件
		propLanguage.load(new FileInputStream("res/config/france.properties"));
		//设置配置文件
		ConfigService.OUTPUT_PATH=propLanguage.getProperty("OUTPUT_PATH");
		ConfigService.FONT_PATH=propLanguage.getProperty("FONT_PATH");
		ConfigService.OUTPUT_MENU_XML_PATH=propLanguage.getProperty("OUTPUT_MENU_XML_PATH");
		ConfigService.TRANSLATE_API=propLanguage.getProperty("TRANSLATE_API");
		ConfigService.TRANSLATE_VOICE_API=propLanguage.getProperty("TRANSLATE_VOICE_API");
		ConfigService.TRANSLATE_VOICE_API_BACKUP=propLanguage.getProperty("TRANSLATE_VOICE_API_BACKUP");
		
		
		//----------------------------------------------------------------------------------------------------------------------------------------------
		/**
		 * 生成课程服务_逻辑步骤
		 * 1.  读取XML模板中的数据并组织成JAVA对象
		 * 2.  将JAVA对象中的语言翻译成目标国家的语言
		 * 3.  下载目标国家的语音到目标文件夹
		 * 4.	生成语言对应的图片到目标文件夹
		 * 5.	将JAVA对象转换成XML到目标文件夹
		 */
		//创建课件服务对象
		CourseService cs = new CourseService();
		System.out.println("1.	读取XML模板中的数据并组织成JAVA对象");
		// 1.  读取XML模板中的数据并组织成JAVA对象
		List<TypeModel> listTypeModel = cs
				.getTypeModeFromFilePath(ConfigService.COMMON_MENU_XML_PATH);
		
		int iTotalCards=0;
		for(TypeModel tm:listTypeModel)
		{
			for(CourseModel cm:tm.getListCourseModel())
			{
				iTotalCards+=cm.getListCourseOptionModel().size();
				if(cm.getListCourseOptionModel().size()>4)
				{
					System.out.println("课件大于4的课程是="+cm.getName());
				}
			}
		}
		System.out.println("卡片总数:"+iTotalCards);
		
	
		System.out.println("2.	将JAVA对象中的语言翻译成目标国家的语言");
		//	2.  将JAVA对象中的语言翻译成目标国家的语言
		listTypeModel=cs.translateTextLanuage(listTypeModel);
		
		System.out.println("3.	下载目标国家的语音到目标文件夹");
		//	3.  下载目标国家的语音到目标文件夹
//		System.getProperties().put("proxySet", "false");
		cs.downloadVoices(listTypeModel);
		
		
		//5.	将JAVA对象转换成XML到目标文件夹
		System.out.println("5.	将JAVA对象转换成XML到目标文件夹");
		cs.writeTypeModelToFile(listTypeModel, ConfigService.OUTPUT_MENU_XML_PATH);

		System.out.println("生成结束.");
	}

}
